const CryptoJs = require('crypto-js')
import {
	Crypto
} from 'cryptojs/cryptojs.js'

// const defaultIv = "ogiGRWos02oH22301#"; // 默认的key 偏移量

/**
 * 加密方法
 */
function encrypt(str, key) {
	try {
		var value = uni.getStorageSync('key')
		if (value) {
			var keyStr = encParse(JSON.parse(value).first + key + JSON.parse(value).second)
			// var keyStr = encParse('sqx'+ key + 'wlyzwz')
			const encryptedStr = CryptoJs.DES.encrypt(str, keyStr, {
				mode: CryptoJs.mode.ECB,
				padding: CryptoJs.pad.Pkcs7
			})
			return encryptedStr.toString()
		}
	} catch (e) {}
}

function encrypt3() {
	try {
		if (value) {
			var keyStr = 'sqx' + '1012' + 'wxzy'
			// var keyStr = encParse('sqx'+ key + 'wlyzwz')
			const encryptedStr = CryptoJs.DES.encrypt(str, keyStr, {
				mode: CryptoJs.mode.ECB,
				padding: CryptoJs.pad.Pkcs7
			})
			return encryptedStr.toString()
		}
	} catch (e) {}
}

/**
 * 解密方法
 */
function decrypt(str, key) {
	try {
		var value = uni.getStorageSync('key')
		if (value) {
			const keyStr = encParse(JSON.parse(value).first + key + JSON.parse(value).second)
			// var keyStr = encParse('sqx'+ key + 'wlyzwz')
			const decryptedStr = CryptoJs.DES.decrypt(str, keyStr, {
				mode: CryptoJs.mode.ECB,
				padding: CryptoJs.pad.Pkcs7
			})
			return decryptedStr.toString(CryptoJs.enc.Utf8)
		}
	} catch (e) {}
}

function decrypt2(str, key) {
	var keyStr = encParse(key)
	const decryptedStr = CryptoJs.DES.decrypt(str, keyStr, {
		mode: CryptoJs.mode.ECB,
		padding: CryptoJs.pad.Pkcs7
	})
	return decryptedStr.toString(CryptoJs.enc.Utf8)
}
/**
 * MD5加密方法
 */
function encryptMD5(str) {
	return Crypto.MD5(str)
}

/**
 * 处理密钥字符格式
 * @param: key 需要转格式的字符
 */
function encParse(key) {
	return CryptoJs.enc.Utf8.parse(key)
	// return CryptoJs.enc.Latin1.parse(key);
}

export default {
	decrypt,
	encrypt,
	encrypt3,
	encryptMD5,
	decrypt2,
}